package com.gxc.number;

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

/**
 * 给定一组整数（非负），重排顺序后输出一个最大的整数。
 *
 * 示例1
 *
 * 输入：[10,9]
 *
 * 输出：910
 *
 * 说明:输出结果可能非常大，所以你需要返回一个字符串而不是整数。
 *
 * 输入描述
 * 数字组合
 *
 * 输出描述
 * 最大的整数
 */
public class SortNumber {

    public static void main(String[] args) {
        String str =  "01111";
        System.out.println(str.substring(0));
        System.out.println(str.substring(1));

        Scanner scanner = new Scanner(System.in);
        String[] split = scanner.nextLine().split(" ");
        scanner.close();

        Arrays.sort(split, new Comparator<String>() {
            @Override
            public int compare(String a, String b) {
                return (b+a).compareTo(a+b);
            }
        });

        // 拼接排序后的字符串
        StringBuilder sb = new StringBuilder();
        for (String s : split) {
            sb.append(s);
        }

        // 去除多余的前导零
        int len = sb.length();
        int k = 0;
        while (k < len - 1 && sb.charAt(k) == '0') {
            k++;
        }

        // 输出最终的结果字符串
        System.out.println(sb.substring(k));
    }
}
